package dev.common.service.base;

import java.util.List;

/**
 * @program: JoyDev
 * @description: 特殊接口
 * @author: MR.C
 * @create: 2018-02-07 18:09
 **/
public interface SpecialService<T> {

    /**
     * @Description: 批量插入，支持批量插入的数据库可以使用，例如MySQL,H2等，另外该接口限制实体包含id属性并且必须为自增列
     * @Param: [recordList]
     * @return: int
     * @Author: Mr.Chen
     * @Date: 2018/2/7 下午6:11
     */
    int insertList(List<T> recordList);

    /**
     * @Description: 插入数据，限制为实体包含id属性并且必须为自增列，实体配置的主键策略无效
     * @Param: [record]
     * @return: int
     * @Author: Mr.Chen
     * @Date: 2018/2/7 下午6:12
     */
    int insertUseGeneratedKeys(T record);

    /**
     * @Description: 根据主键字符串进行查询，类中只有存在一个带有@Id注解的字段
     * @Param: [ids] 如1，2，3，4
     * @return: java.util.List<T>
     * @Author: Mr.Chen
     * @Date: 2018/2/7 下午6:12
     */
    List<T> selectByIds(String ids);

    /**
     * @Description: 根据主键字符串进行删除，类中只有存在一个带有@Id注解的字段
     * @Param: [ids] 如1，2，3，4
     * @return: int
     * @Author: Mr.Chen
     * @Date: 2018/2/7 下午6:13
     */
    int deleteByIds(String ids);
}
